/******************************************
 * Nombre del archivo: Op_Predicados2.java
 * Universidad del Valle de Guatemala
 * Curso: Algoritmos y Estructura de Datos
 * Autores:
 *      * Martín Guzmán     08041
 *      * David Hsieh       08225
 *      * Eduardo Mejicano  08058
 *      * Kevin Sánchez     08302
 * Fecha: 16 de agosto de 2009
 * Descripción:
*******************************************/

public class Op_Predicados extends Operacion{
    private static String[] Operadores_predicados = {"NULL","NOT", "PRINT"};
    

    public Op_Predicados() {

    }

    /*****************************************
     * Método: Operar
     * Autor: David Hsieh
     * Uso: Manda a llamar a la operación
     *      respectiva
     * Retorno: Un sting con la respuesta de
     *      la operación
     *****************************************/
    public static String Operar(String operador,String A){
        String result="";
        //System.out.println(operador);
      
        //Si la operación es un NULL
        if (operador.compareTo("NULL")==0){
            //System.out.println(A);
            if(A.compareToIgnoreCase("NIL")==0)
                result = "T";
            else
                result = "NIL";
        }
        //Si la operación es un NOT
        else if (operador.compareToIgnoreCase("NOT")==0){
            if(A.compareToIgnoreCase("NIL")==0)
                result = "T";
            else
                result = "NIL";
        }
        //Si la operación es un PRINT
        else if (operador.compareToIgnoreCase("PRINT")==0){
            System.out.println(A);
                result = A;
        }

        return result;

    }


     /*****************************************
     * Método: getOperadores
     * Autor: David Hsieh
     * Uso: para obtener los operadores de esta
     *      clase desde afuera de ella
     * Retorno: un arreglo con operadores como
     *          de la clase
     *****************************************/
    public static String[] getOperadores() {
        return Operadores_predicados;
    }
    
    /*****************************************
     * Método: Buscar
     * Autor: Martín Guzmán
     * Uso: para ver si se encuentra determinado
     *      operador en esta clase
     * Retorno: Booleano con la respuesta
     *****************************************/
    public static boolean Buscar(String operador) {
        boolean retorno=false;
        for(int i=0;i<Operadores_predicados.length;i++){
            if(Operadores_predicados[i].compareToIgnoreCase(operador)==0){
                retorno=true;
            }
        }
        return retorno;
    }


}

